package com.zgm.service;

import java.util.List;

import org.hibernate.criterion.Criterion;

import com.zgm.bean.Pager;

public interface BaseService<T, PK> {

	T get(PK pk);
	
	T load(PK pk);
	
	T loadInitialize(PK pk);
	
	T save(T t);
	
	void update(T t);
	
	void delete(T t);
	
	void merge(T t);
	
	void flush();
	
	Long getTotalCount();
	
	List<T> getAllList();
	
	List<T> getList(String propertyName, Object propertyValue);
	
	Pager findPager(Pager pager);
	
	Pager findPager(Pager pager, Criterion... criterions);
	
//	void updateInOneTransaction(PK pk);
}
